SUJET N°1: Programmation AJAX:
Cette évaluation comprend une seule épreuve. Celle-ci concerne la programmation en javascript de deux fonctions:
- Une fonction permettant de déclencher un échange AJAX en mode asynchrone pouvant concerner soit un document XML, soit un autre
document de type acceptable pour un échange AJAX (php, html...)
- Une autre fonction, appelée en fin d'échange AJAX, dont le seul but sera d'appeler une fonction de traitement avec,
en argument, le contenu téléchargé.
Le prototype de la première fonction sera:
AJAX_Request ( NomDocument, TypeRequete, Arguments, CallBack ).
- L'argument "NomDocument" est le chemin d'accès au fichier à télécharger.
- L'argument "TypeRequête" vaut "get" ou "post".
- "ListeArguments" contient la liste des arguments accompagnant la requête (format Nom1=Valeur1&Nom2=Valeur2&...)
- "CallBack" est le nom de la fonction de traitement des données téléchargées. Cette fonction aura pour argument le contenu reçu.
Proposition N° 1(Valeur: 20.0
):
L'exercice consiste à compléter le code Javascript ci-dessous afin qu'il réponde à la question.
function AJAX_Request ( NomDocument, TypeRequete, Arguments, CallBack )
{
// DONNEES LOCALES
var ObjetXHR_object = null;
// DEBUT
// Tenter de créer l'objet ObjetXHR en fonction du navigateur utilisé
if ( ) // Firefox
ObjetXHR = ;
else if () // Internet Explorer
ObjetXHR = ;
else
{
// Signaler que XMLHttpRequest n'est pas supporté par le navigateur et terminer
window.alert("Votre navigateur n'est pas apte à utiliser les objets XMLHttpRequest.");
return;
}
// Ouvrir l'échange
if ( TypeRequete == "get" )
;
else
;
// Choisir l'encodage correspondant au traitement choisi
ObjetXHR.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
// Connexion à la fonction de "callback", appelée lors des changements d'états de l'échange
ObjetXHR. = ;
// Envoi de la requète
ObjetXHR.;
// FIN
}
function Reception()
{
// SI ( L'état de l'objet ObjetXHR est "complète") ALORS Exécuter le code javascript reçu
if ( ObjetXHR. == )
{
if ( NomDocument.indexOf('.xml', 0) != -1 )
{
CallBack(ObjetXHR.); // Retourne le contenu d'un fichier XML
}
else
{
CallBack (ObjetXHR.); // Retourne le texte d'une page web
}
// FINSI
}
}
( Niveau de confiance:
).